UNPKG

create-mytech

Version:

Create Your Own Techstack with basic boilerplate code.

90 lines (81 loc) 1.82 kB
import { prisma } from "@/lib/prisma"; import { compare } from "bcrypt"; import NextAuth, { type NextAuthOptions } from "next-auth"; import CredentialsProvider from "next-auth/providers/credentials"; export const authOptions: NextAuthOptions = { session: { strategy: "jwt", }, providers: [ CredentialsProvider({ name: "Sign in", credentials: { email: { label: "Email", type: "email", placeholder: "hello@example.com", }, password: { label: "Password", type: "password" }, }, async authorize(credentials) { // if (!credentials?.email || !credentials.password) { // return null; // } const user = { id: "qwewqxww", name: "Ethan", email: "test@test.com", }; return user; // const user = await prisma.user.findUnique({ // where: { // email: credentials.email // } // }) if (!user) { return null; } // const isPasswordValid = await compare( // credentials.password, // user.password // ) // if (!isPasswordValid) { // return null; // } // return { // id: user.id + '', // email: user.email, // name: user.name, // randomKey: 'Hey cool' // } }, }), ], callbacks: { session: ({ session, token }) => { console.log("Session Callback", { session, token }); return { ...session, user: { ...session.user, id: token.id, randomKey: token.randomKey, }, }; }, jwt: ({ token, user }) => { console.log("JWT Callback", { token, user }); if (user) { const u = user as unknown as any; return { ...token, id: u.id, randomKey: u.randomKey, }; } return token; }, }, }; const handler = NextAuth(authOptions); export { handler as GET, handler as POST };